package com.sl.biz.modular.process.service;


import com.sl.biz.modular.process.controller.request.*;
import com.sl.biz.modular.process.controller.response.ProcessVersionVO;
import com.sl.biz.modular.process.dao.domain.entity.ProcessVersionContentDO;
import com.sl.biz.modular.process.dao.domain.entity.ProcessVersionDO;
import com.sl.core.engine.check.ProcessCompCheckResult;

import java.util.List;
import java.util.Map;

public interface ProcessVersionContentBizService {
    ProcessVersionVO getById(ProcessVersionDO addRequest);

    Boolean saveXml(SquareLakeProcessResourceAddRequest addRequest);

    String tid();

    Object run(SquareLakeProcessRunRequest runRequest);

    Boolean stepPause(SquareLakeProcessStepPauseRequest runRequest);

    Boolean stepResume(SquareLakeProcessStepPauseRequest runRequest);

    Boolean transResume(SquareLakeProcessStepPauseRequest runRequest);

    Boolean transResumeAll(SquareLakeProcessStepPauseRequest runRequest);

    Object stepRun(SquareLakeProcessStepRunRequest runRequest);

    Map<String, Object> getCurrentInputDefine(SquareLakeProcessGetCurrentInputDefineRequest addRequest);

    Map<String, Object> getCurrentOutputDefine(SquareLakeProcessGetCurrentOutputDefineRequest addRequest);

    List<String> getNextTransforms(SquareLakeProcessGetNextTransformsRequest addRequest);

    String buildScripts(SquareLakeProcessBuildScriptsRequest buildScriptsRequest);

    List<ProcessCompCheckResult> check(ProcessResourceCheckRequest checkRequest);

    List<Map<String, Object>> getCurrentInputDefineGroup(SquareLakeProcessGetCurrentInputDefineGroupRequest checkRequest);

    Map<String, Object> getProcessEventInputDefine(SquareLakeProcessGetProcessInputDefineRequest addRequest);

    Map<String, Object> runWithResultToFieldDefine(SquareLakeProcessResultToFieldDefineRequest runRequest);

    Object compensate(SquareLakeProcessComensateRequest runRequest);

    Boolean save(ProcessVersionContentDO processVersionContentDO);
}
